﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;
using System.Data.OleDb;
using System.Data.SQLite;
using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.factories;

namespace CSharp_lp1415_5958_3958
{
    /// <summary>
    ///  Classe principal de toda a aplicação, contém métodos/funções para controlar e executar a aplicacão
    /// </summary>
    public partial class Form1 : Form
    {
        /// <summary>
        ///  Construtor da classe principal da aplicação, inicialização de todos os métodos e componentes gráficos 
        /// </summary>
        public Form1()
        {
            Stopwatch stopWatch = new Stopwatch(); 
            stopWatch.Start();                     
            Thread.Sleep(1000);
            InitializeComponent();
            stopWatch.Stop();                      
            TimeSpan ts = stopWatch.Elapsed;
            string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}:{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10);
            Console.WriteLine("Aplicação Iniciada e executada em :" + elapsedTime + " ms - MiliSegundos");
        }

        /// <summary>
        ///  Método para efectuar a abertura e leitura de um ficheiro xls
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog vAbreArq = new OpenFileDialog();
            vAbreArq.Filter = "Arquivo de Excel (*.xls)|*.xls";
            vAbreArq.RestoreDirectory = true;
            vAbreArq.Title = "Selecione o Arquivo";
            vAbreArq.DefaultExt = "Arquivo de Texto (*.xls)|*.xls";
            if (vAbreArq.ShowDialog() == DialogResult.OK)
            {
                DataSet ds = new DataSet();
                string diretorio = System.IO.Path.GetDirectoryName(vAbreArq.FileName);
                OleDbConnection ligacaoXls = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + vAbreArq.FileName + ";" + "Extended Properties=Excel 8.0;");
                try
                {
                    DateTime tempoInicial = DateTime.Now;
                    int i;
                    for (i = 1; i <= 1000; i++){//System.Console.WriteLine(i);
                    }
                    string teste = System.IO.Path.GetFileName(vAbreArq.FileName);
                    OleDbDataAdapter da = new OleDbDataAdapter("Select Ano, IPC_Global, Variacao_Anual,Remuneracao_Minima_Mensal,Remuneracao_Maxima_Mensal,PIB_Per_Capita_Anual,Rendimento_Nacional_Bruto,Rendimento_Disponivel_Bruto,Remuneracoes_Per_Capita_Anual From [Dados$]", ligacaoXls);
                    da.Fill(ds);
                    vGrade.DataSource = ds.Tables[0];
                    DateTime tempoFinal = DateTime.Now;    
                    TimeSpan ts = tempoFinal - tempoInicial;
                    int fim = ts.Milliseconds;             
                    System.Console.WriteLine("Tempo total para ler e mostrar dados na Tabela: " + fim + " ms - MiliSegundos");
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao aceder aos dados: " + ex.Message);
                }
                finally
                {
                    ligacaoXls.Close();
                }
            }
        }

        /// <summary>
        ///  Método para efectuar a criação da Base de Dados
        /// </summary>
        private void button2_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime tempoInicial = DateTime.Now; //captura o tempo atual em(ms)
                int i;
                for (i = 1; i <= 1000; i++)
                {
                    //System.Console.WriteLine(i);
                }
                string dbFile = "DataBase.db";
                if (System.IO.File.Exists(dbFile)) System.IO.File.Delete(dbFile);
                System.Data.SQLite.SQLiteConnection.CreateFile(dbFile);
                DateTime tempoFinal = DateTime.Now;       
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;                 
                System.Console.WriteLine("Base de Dados criada em: " + fim + " ms - MiliSegundos");
                MessageBox.Show(this, "Base de dados criada com Sucesso.", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this,"Ocorreu um erro ao criar a base de dados.\n"+ ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// <summary>
        ///  Método para verificar se a Base de Dados existe, pois pode acontecer de não estar criada dando erro
        /// </summary>
        private SQLiteConnection OpenConnection()
        {
            string dbFile = "DataBase.db";
            SQLiteConnection conn = new SQLiteConnection("Data Source=" + dbFile + ";Version=3;");
            conn.Open();
            return conn;
        }

        /// <summary>
        ///  Método para criar Tabela e os seus atributos na Base de Dados
        /// </summary>
        private void button3_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime tempoInicial = DateTime.Now;
                int i;
                for (i = 1; i <= 1000; i++){//System.Console.WriteLine(i);
                }
                SQLiteConnection conn = OpenConnection();
                SQLiteCommand command = conn.CreateCommand();
                string createTable = @"CREATE TABLE Ipcportugal (
	                       ID INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
	                       Ano DOUBLE,
                           IPC_Global DOUBLE,
                           Variacao_Anual DOUBLE,
                           Remuneracao_Minima_Mensal DOUBLE,
                           Remuneracao_Maxima_Mensal DOUBLE,
                           PIB_Per_Capita_Anual DOUBLE,
                           Rendimento_Nacional_Bruto DOUBLE,
                           Rendimento_Disponivel_Bruto DOUBLE,
                           Remuneracoes_Per_Capita_Anual DOUBLE
	                   )";
                command.CommandText = createTable;
                command.ExecuteNonQuery();
                DateTime tempoFinal = DateTime.Now;       
                TimeSpan ts = tempoFinal - tempoInicial;  
                int fim = ts.Milliseconds;     
                System.Console.WriteLine("Tempo total para criar Tabela e Atributos: " + fim + " ms - MiliSegundos");
                MessageBox.Show(this, "Tabela criada com Sucesso.", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(this,"Ocorreu um erro ao criar a tabela na base de dados.\n"+ ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        /// <summary>
        ///  Método para inserir os dados da tabela na Base de Dados
        /// </summary>
        private void button4_Click(object sender, EventArgs e)
        {
            if (!Validate(false)) return;
            SQLiteConnection conn = OpenConnection();
            SQLiteTransaction transaction = null;
            try
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++){//System.Console.WriteLine(j);
                }
                transaction = conn.BeginTransaction();
                SQLiteCommand command = conn.CreateCommand();
                string insertCommand = "INSERT INTO Ipcportugal (Ano, IPC_Global, Variacao_Anual, Remuneracao_Minima_Mensal, Remuneracao_Maxima_Mensal, PIB_Per_Capita_Anual, Rendimento_Nacional_Bruto, Rendimento_Disponivel_Bruto, Remuneracoes_Per_Capita_Anual) VALUES(?,?,?,?,?,?,?,?,?)";
                for (int i = 0; i < vGrade.Rows.Count - 1; i++)
                {
                    command.Parameters.Clear();
                    command.Parameters.AddWithValue("Ano", vGrade.Rows[i].Cells[0].Value);
                    command.Parameters.AddWithValue("IPC_Global", vGrade.Rows[i].Cells[1].Value);
                    command.Parameters.AddWithValue("Variacao_Anual", vGrade.Rows[i].Cells[2].Value);
                    command.Parameters.AddWithValue("Remuneracao_Minima_Mensal", vGrade.Rows[i].Cells[3].Value);
                    command.Parameters.AddWithValue("Remuneracao_Maxima_Mensal", vGrade.Rows[i].Cells[4].Value);
                    command.Parameters.AddWithValue("PIB_Per_Capita_Anual", vGrade.Rows[i].Cells[5].Value);
                    command.Parameters.AddWithValue("Rendimento_Nacional_Bruto", vGrade.Rows[i].Cells[6].Value);
                    command.Parameters.AddWithValue("Rendimento_Disponivel_Bruto", vGrade.Rows[i].Cells[7].Value);
                    command.Parameters.AddWithValue("Remuneracoes_Per_Capita_Anual", vGrade.Rows[i].Cells[8].Value);
                    command.CommandText = insertCommand;
                    command.ExecuteNonQuery();
                }
                transaction.Commit();
                DateTime tempoFinal = DateTime.Now;      
                TimeSpan ts = tempoFinal - tempoInicial;  
                int fim = ts.Milliseconds;             
                System.Console.WriteLine("Tempo total na inserção dados na Base de Dados: " + fim + " ms - MiliSegundos");
                MessageBox.Show("Dados inseridos com Sucesso .", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                if (transaction != null) transaction.Rollback();
                MessageBox.Show(this, "Ocorreu um erro ao inserir os dados na tabela.\n"+ ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally { conn.Close(); }
        }

        /// <summary>
        ///  Método para criar relatório PDF, baseado nos dados apresentados gráficamente no ecrã
        /// </summary>
        private void button5_Click(object sender, EventArgs e)
        {
            Document doc = new Document(iTextSharp.text.PageSize.LETTER, 10,10,42,35);
            iTextSharp.text.Image PGN = iTextSharp.text.Image.GetInstance(imagepath + "C://CSharp_lp1415_5958_3958/CSharp_lp1415_5958_3958//bin/Debug//Imagens//estig_logo.png");
            PGN.ScaleToFit(200f, 200f);
            PGN.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

            Paragraph heading0 = new Paragraph("Evolução dos Salários da Função Pública em Portugal");
            heading0.Alignment = Element.ALIGN_CENTER;
            heading0.SpacingBefore = 20f;
            heading0.SpacingAfter = 20f;

            Paragraph heading1 = new Paragraph("Trabalho Prático\nLinguagens de Programação");
            heading1.Alignment = Element.ALIGN_CENTER;
            heading1.SpacingAfter = 20f;

            Paragraph heading2 = new Paragraph("Sat Jan 16/01/2015", new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 10f, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.RED));
            heading2.Alignment = Element.ALIGN_CENTER;
            heading2.SpacingAfter = 60f;

            Paragraph heading3 = new Paragraph("Análise Estatística dos Salários Portugueses", new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 10f, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.BLACK));
            heading3.Alignment = Element.ALIGN_CENTER;
            heading3.SpacingAfter = 30f;
            heading3.SpacingBefore = 30f;

            iTextSharp.text.Image JPG = iTextSharp.text.Image.GetInstance(imagepath + "C://CSharp_lp1415_5958_3958/CSharp_lp1415_5958_3958//bin/Debug//Imagens//graficoPDF.jpg");
            JPG.ScaleToFit(300f, 300f);
            JPG.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

            Paragraph heading4 = new Paragraph("Autor: Miguel Fialho Nº 5958\nAutor: Pedro Serrano Nº 3958", new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 9f, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.BLACK));
            heading4.Alignment = Element.ALIGN_LEFT;
            heading4.SpacingAfter = 30f;
            heading4.SpacingBefore = 30f;

            string text = @"Relatório Estatistico sobre a evolução dos salários da função pública em Porugal, num inetrvalo de
                            tempo entre 1977 a 2013, analisando assim as variáveis de: Indice de Preços ao consumidor, a Taxa
                            de Inflação, Remunerações Minima/Máxima mensal dos funcionários públicos, Pib, Rendimento
                            Nacional/Disponivel bruto per capita.";

            text = text.Replace(Environment.NewLine, String.Empty).Replace("  ", String.Empty);
            Paragraph heading5 = new Paragraph(text, new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 9f, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.BLACK));
            heading5.SpacingAfter = 30f;
            heading5.SpacingBefore = 30f;


            iTextSharp.text.Image JPG1 = iTextSharp.text.Image.GetInstance(imagepath + "C://CSharp_lp1415_5958_3958/CSharp_lp1415_5958_3958//bin/Debug//Imagens//logotiposEuropa.jpg");
            JPG1.ScaleToFit(200f, 200f);
            JPG1.Alignment = iTextSharp.text.Image.ALIGN_CENTER;

            PdfPTable table = new PdfPTable(9);

            table.WidthPercentage = 100;
            table.HorizontalAlignment = Element.ALIGN_LEFT;
            table.DefaultCell.BorderWidth = 1;

            PdfPCell cell = new PdfPCell(new Phrase("Dados Estatisticos Provenientes da Função Publica Portuguesa",new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 10f, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.RED)));
            cell.Colspan = 9;
            cell.HorizontalAlignment = 1;
            table.AddCell(cell);

            for (int j = 0; j < vGrade.Columns.Count; j++)
            {
                table.AddCell(new Phrase(vGrade.Columns[j].HeaderText, new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 5f, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.GREEN)));
            }

            table.HeaderRows = 1;
            for (int j = 0; j < vGrade.Rows.Count; j++)
            {
                for (int k = 0; k < vGrade.Columns.Count; k++)
                {
                    if(vGrade[k, j].Value != null)
                    {
                        table.AddCell(new Phrase(vGrade[k, j].Value.ToString(), new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 7f, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.BLUE)));
                    }
                }
            }

            string folderPath = "C:\\CSharp_lp1415_5958_3958/CSharp_lp1415_5958_3958/bin/Debug/Report\\";
            if (!Directory.Exists(folderPath))
            {
                Directory.CreateDirectory(folderPath);
            }
            using (FileStream stream = new FileStream(folderPath + "Indice de Precos ao consumidor (IPC).pdf", FileMode.Create))
            {
                DateTime tempoInicial = DateTime.Now; 
                int j;
                for (j = 1; j <= 1000; j++){//System.Console.WriteLine(j);
                }
                Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 25f, 25f);
                PdfWriter.GetInstance(pdfDoc, stream);
                pdfDoc.Open();
                pdfDoc.Add(PGN);
                pdfDoc.Add(heading0);
                pdfDoc.Add(heading1);
                pdfDoc.Add(heading2);
                pdfDoc.Add(heading3);
                pdfDoc.Add(JPG);
                pdfDoc.Add(heading4);
                pdfDoc.Add(heading5);
                pdfDoc.Add(JPG1);
                pdfDoc.Add(table);
                pdfDoc.Close();
                stream.Close();

                DateTime tempoFinal = DateTime.Now;       
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;             
                System.Console.WriteLine("Tempo total da criação do relatório: " + fim + " ms - MiliSegundos");
                MessageBox.Show("Relatório criado com Sucesso .", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        /// <summary>
        ///  Método para pegar e setar o caminho da diretoria das imagens
        /// </summary>
        public string imagepath { get; set; }

        /// <summary>
        ///  Método para fazer gráfico Índice de preços ao consumidor 
        /// </summary>
        private void button6_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 25f, 25f);
                FormGraphIpc ShowGraphipc = new FormGraphIpc(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico IPC: " + fim + " ms - MiliSegundos");
            }  
        }

        /// <summary>
        ///  Método para fazer gráfico Taxa de Inflação 
        /// </summary>
        private void button7_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphVariacaoAnual ShowGraphipc = new FormGraphVariacaoAnual(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico Taxa de Inflação: " + fim + " ms - MiliSegundos");
            }
        }

        /// <summary>
        ///  Método para fazer gráfico Remuneração mínima mensal dos funcionários públicos
        /// </summary>
        private void button8_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphRemMin ShowGraphipc = new FormGraphRemMin(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico Remuneração Minima: " + fim + " ms - MiliSegundos");
            }
        }

        /// <summary>
        ///  Método para fazer gráfico Remuneração máxima mensal dos funcionários públicos
        /// </summary>
        private void button9_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphRemMax ShowGraphipc = new FormGraphRemMax(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico Remuneração Maxima: " + fim + " ms - MiliSegundos");
            }
        }

        /// <summary>
        ///  Método para fazer gráfico produto interno bruto per capita
        /// </summary>
        private void button10_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphPIB ShowGraphipc = new FormGraphPIB(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico PIB: " + fim + " ms - MiliSegundos");
            }
        }

        /// <summary>
        ///  Método para fazer gráfico Rendimento Nacional anual bruto per capita
        /// </summary>
        private void button11_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphRemNacional ShowGraphipc = new FormGraphRemNacional(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico Rendimento Nacional: " + fim + " ms - MiliSegundos");
            }
        }

        /// <summary>
        ///  Método para fazer gráfico Rendimento Disponivel anual bruto per capita
        /// </summary>
        private void button12_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphRemDisponivel ShowGraphipc = new FormGraphRemDisponivel(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico Rendimento Disponivel: " + fim + " ms - MiliSegundos");
            }
        }

        /// <summary>
        ///  Método para fazer gráfico Remunerações per capita anuais
        /// </summary>
        private void button13_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == string.Empty || textBox2.Text == string.Empty)
            {
                MessageBox.Show("Indique o periodo do Ano que deseja efectuar a pesquisa!", "A Message", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
            else
            {
                DateTime tempoInicial = DateTime.Now;
                int j;
                for (j = 1; j <= 1000; j++)
                {//System.Console.WriteLine(j);
                }
                FormGraphRemuneracoes ShowGraphipc = new FormGraphRemuneracoes(textBox1.Text, textBox2.Text);
                ShowGraphipc.Show();
                DateTime tempoFinal = DateTime.Now;
                TimeSpan ts = tempoFinal - tempoInicial;
                int fim = ts.Milliseconds;
                System.Console.WriteLine("Tempo total da criação Gráfico Remunerações: " + fim + " ms - MiliSegundos");
            }
        }
    }
}
